package controlador;

import java.util.ArrayList;

import javax.swing.table.AbstractTableModel;

import objetos.ProfesorDAO;

/**
 * 
 * @author Oscar y Juanvi
 *
 */
public class ModeloTablaProfesoresFrameNuevoProfesor extends AbstractTableModel{
	
	private  String[] valoresColumnas = {"Id_Profesor","Nombre", "Primer Apellido", "Segundo Apellido"};//Nombre de las columnas
	private  Object[][]valoresFilas;//Valores de las filas
	
	/**
	 * Constructor de la clase
	 */
	public ModeloTablaProfesoresFrameNuevoProfesor(ArrayList<ProfesorDAO> p) {
		valoresFilas = new Object[p.size()][valoresColumnas.length];//Inicializacion de valores filas
		int i = 0;//Contador de la fila
		for (ProfesorDAO profesorDAO : p) {
			valoresFilas[i][0] = profesorDAO.getNumExpediente();//Asigna el id del profesor
			valoresFilas[i][1] = profesorDAO.getNombre();//Asigna el nombre del profesor
			valoresFilas[i][2] = profesorDAO.getApellido1();//Asigna el Primer Apellido del profesor
			valoresFilas[i][3] = profesorDAO.getApellido2();//Asigna el Segundo Apellido del profesor
			i++;//Incrementa la fila
		}
	}
	
	@Override
	public int getColumnCount() {
		return valoresColumnas.length;
	}

	@Override
	public int getRowCount() {
		return valoresFilas.length;
	}

	@Override
	public Object getValueAt(int fila, int col) {
		return valoresFilas[fila][col];
	}
	
	@Override
	public String getColumnName(int col) {
		return  valoresColumnas[col].toString();
	}
	
	@Override
	public void setValueAt(Object valor, int fila, int columna) {
		valoresFilas[fila][columna] = valor;
		fireTableCellUpdated(fila, columna);
	}
	
	@Override
	public boolean isCellEditable(int fila, int columna) {
		return false;
	}
	
	@Override
	public Class<?> getColumnClass(int columnIndex) {
		return getValueAt(0,columnIndex).getClass();
	}	
}
